#!/bin/bash

access_port() {
    timeout 3 bash -c "cat < /dev/null > /dev/tcp/$1/$2" 2>/dev/null && \
        echo "端口 $2 在 $1 上是开放的。" || \
        echo "端口 $2 在 $1 上未开放或不可访问。"
}

connect_net() {
    curl -s --head --connect-timeout 5 "$1" >/dev/null && \
        echo "成功连接到 $1。" || \
        echo "无法连接到 $1，请检查网络或地址是否有效。"
}

case $1 in
    ACCESSPORT)
        access_port "$2" "$3"
        ;;
    CONNECTNET)
        connect_net "$2"
        ;;
    *)
        echo "用法: $0 ACCESSPORT <host> <port> 或 $0 CONNECTNET <url>"
        ;;
esac
